package session;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*
  Session:
     概念: 服务器会话端技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中.
     快速入门:
           1: 获取HttpSession对象
               request.getSession();
           2: 使用HttpSession对象:
               void setAttribute(String name,Object value)
               Object getAttribute(String name)
               void removeAttribute(String name)
      原理: Session的实现是依赖于cookie的。
           服务器如何确保在一次会话范围内，多次获取的Session对象是同一个？？？
               *在第一次获取Session，没有Cookie，会在内存中创建一个新的Session对象，并且会给该
                 对象一个id值并赋值给“set-cookie”头；下一次客户端访问服务器端时都会用该id值进行访问
     session什么时候被销毁：
           1：服务器被关闭的时候
           2：session默认失效时间为30分钟
               可以到tomcat的配置文件web.xml中修改数据的销毁时间
                    <session-config>
                         <session-timeout>30</session-timeout>
                     </session-config>
     session的特点:
           1: session用于存储一次会话的多次请求的数据,存在服务器端
           2: session可以存储任意类型,任意大小的数据

           session与cookie的区别:
             1: session存储数据在服务器端,Cookie在客户端
             2: session没有数据大小限制,Cookie有
             3: session数据安全,Cookie相当于不安全

*/
@WebServlet("/sessionDemo01")
public class sessionDemo01 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
